import axios from "axios";
import Jimp from "jimp";
import jsQR from "jsqr";
// import QrCode from "qrcode-reader";

const qrDecode = async (url: string): Promise<string> => {
  const res = await axios.get(url, { responseType: 'arraybuffer' });
  const buffer = Buffer.from(res.data, 'binary');
  const image = await Jimp.read(buffer);
  const width = image.bitmap.width;
  const height = image.bitmap.height;
  const imgData = image.bitmap.data;
  const uint8Array = new Uint8ClampedArray(imgData.buffer);
  const code = jsQR(uint8Array, width, height);
  if (code) {
    return code.data;
  }

  return '';
  // return new Promise((resolve, reject) => {
  //   // const qr = new QrCode();
  //   // qr.callback = function (errorWhenDecodeQR: any, result: { result: any; }) {
  //   //   if (errorWhenDecodeQR) {
  //   //     console.log('1' + errorWhenDecodeQR)
  //   //     reject(false);
  //   //     return;
  //   //   }
  //   //   if (!result) {
  //   //     console.log(2)
  //   //     reject(false);
  //   //     return;
  //   //   } else {
  //   //     resolve(result.result);
  //   //   }
  //   // };
  //   // qr.decode(image.bitmap);
  // });
}

export default qrDecode;